package com.example.app.manager.giftplay

import com.blankj.utilcode.util.LogUtils
import com.libcommon.ext.workUI
import com.tencent.qgame.animplayer.AnimConfig
import com.tencent.qgame.animplayer.inter.IAnimListener

/**
 * CreateBy:Joker
 * CreateTime:2024/9/30/周一 15:16
 * description：
 */
abstract class VapCallBack : IAnimListener {

    abstract fun playEnd()

    /**
     * 失败回调
     * 一次播放时可能会调用多次，建议onFailed只做错误上报
     * @param errorType 错误类型
     * @param errorMsg 错误消息
     */
    override fun onFailed(errorType: Int, errorMsg: String?) {
        val msg2 = "onFailed,errorType=$errorType,errorMsg=$errorMsg"
        LogUtils.eTag(VapManager.TAG, msg2)
    }

    /**
     * 视频播放结束(失败也会回调onComplete)
     */
    override fun onVideoComplete() {
//        LogUtils.iTag(VapManager.TAG, "onVideoComplete")
        workUI { playEnd() }
    }

    /**
     * 播放器被销毁情况下会调用onVideoDestroy
     */
    override fun onVideoDestroy() {
//        LogUtils.iTag(VapManager.TAG, "onVideoDestroy")
    }

    /**
     * 视频渲染每一帧时的回调
     * @param frameIndex 帧索引
     */
    override fun onVideoRender(frameIndex: Int, config: AnimConfig?) {
        //LogUtils.dTag(VapManager.TAG, "onVideoRender frameIndex=$frameIndex,config=$config")
    }

    /**
     * 视频开始回调
     */
    override fun onVideoStart() {
        //LogUtils.iTag(VapManager.TAG, "onVideoStart")
    }
}